課程資訊
課程名稱
軟體開發方法
Software Development Methods 
開課學期
109-2 
授課對象
管理學院  資訊管理學系  
授課教師
蔡益坤 
課號
IM5027 
課程識別碼
725 U3340 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
管二302 
備註
部份週次之週三6有實習課,地點同上課教室。
限學士班三年級以上
總人數上限:50人
外系人數限制:4人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project. 

課程目標
The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development. 
課程要求
Object-Oriented Programming and Database Management. 
預期每週課後學習時數
 
Office Hours
每週三 13:30~14:30
每週二 13:30~14:30 
指定閱讀
Class notes and selected readings. 
參考書目
See the course wikisite:
http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2020:main 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Attendance/Participation 
10% 
 
2. 
Final Exam 
30% 
 
3. 
Term Project 
50% 
 
4. 
Homework 
10% 
 
 
課程進度
週次
日期
單元主題
第1週
  Introduction;
Productivity Tools: Version Control with Git 
第2週
  Software Modeling: An Overview of UML;
Term Project: Initial Discussions 
第3週
  Software Modeling: UML Diagrams 
第4週
  Software Implementation: Web Programming Pearls 
第5週
  Term Project: Proposal Presentations;
Software Security: Web Application Security 
第6週
  Software Modeling: Domain Modeling 
第7週
  Software Development Practice: Agile Development in Practice 
第8週
  Term Project: First Preliminary Demos;
Software Development Practice: Design Document 
第9週
  Design Patterns 
第10週
  Design Patterns 
第11週
  Term Project: Second Preliminary Demos;
Midterm Discussions (or Make-Up Lecture) 
第12週
  Software Verification: Testing 
第13週
  Software Modeling: Formal Logic and Correctness Requirements 
第14週
  Software Modeling: Formal Logic and Correctness Requirements 
第15週
  Term Project: Final Presentations 
第16週
  Final Exam 
第17週
  Software Verification: Formal Program Verification 
第18週
  Software Verification: Formal Program Verification